//模拟实现lodash中curry的方法
const _= require('lodash')

//要柯里化的函数
function getSum(a, b, c) {
    return a + b + c
}

// const curried = _.curry(getSum) // lodash参数
const curried = curry(getSum) // 在自定义curry
//接受全部参数
console.log(curried(1,2,3))

// 接受部分参数,返回新的一个函数,等待接收剩余的参数
console.log(caches(1)(2,3))

console.log(curried(1,2)(3))

function curry(func){
    return function curriedFn(...args) {
        //判断实参和形参的个数
        if(args.length < func.length){
            return function () {
                //合并
                return curriedFn(...args.concat(Array.from(arguments)))
            }
        }
        // 实参和形参个数相同，调用 func，返回结果
        return func(...args)
    }
}
